Filename | (eval 1105)[/usr/share/perl5/Sub/Quote.pm:5] |
Statements | Executed 129 statements in 696µs |
Eval Invoked At | /usr/share/perl5/Sub/Quote.pm line 5 |
Sibling evals | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
5 | 2 | 2 | 127µs | 1.46ms | new | DBIx::Class::Storage::BlockRunner::
1 | 1 | 1 | 15µs | 31µs | BEGIN@4.2965 | Sub::Quote::
1 | 1 | 1 | 7µs | 7µs | BEGIN@10.2966 | Method::Generate::Constructor::
1 | 1 | 1 | 6µs | 6µs | BEGIN@74 | DBIx::Class::Storage::BlockRunner::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | { | ||||
2 | 2 | 2µs | my $_QUOTED = ${$_[1]->{"\$_QUOTED"}}; | ||
3 | 1 | 200ns | my $_UNQUOTED = ${$_[1]->{"\$_UNQUOTED"}}; | ||
4 | 2 | 108µs | 2 | 46µs | # spent 31µs (15+16) within Sub::Quote::BEGIN@4.2965 which was called:
# once (15µs+16µs) by Sub::Quote::_clean_eval at line 4 # spent 31µs making 1 call to Sub::Quote::BEGIN@4.2965
# spent 16µs making 1 call to warnings::unimport |
5 | # spent 1.46ms (127µs+1.34) within DBIx::Class::Storage::BlockRunner::new which was called 5 times, avg 293µs/call:
# 4 times (103µs+1.33ms) by DBIx::Class::Storage::DBI::dbh_do at line 855 of DBIx/Class/Storage/DBI.pm, avg 359µs/call
# once (25µs+1µs) by DBIx::Class::Storage::DBI::dbh_do at line 56 of Sub/Defer.pm | ||||
6 | $_QUOTED if 0; | ||||
7 | 4 | 300ns | $_UNQUOTED if 0; | ||
8 | # BEGIN quote_sub PRELUDE | ||||
9 | package Method::Generate::Constructor; | ||||
10 | # spent 7µs within Method::Generate::Constructor::BEGIN@10.2966 which was called:
# once (7µs+0s) by Sub::Quote::_clean_eval at line 15 | ||||
11 | 1 | 1µs | $^H = "2018"; | ||
12 | 1 | 400ns | ${^WARNING_BITS} = "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"; | ||
13 | 1 | 5µs | %^H = ( | ||
14 | ); | ||||
15 | 1 | 279µs | 1 | 7µs | } # spent 7µs making 1 call to Method::Generate::Constructor::BEGIN@10.2966 |
16 | # END quote_sub PRELUDE | ||||
17 | 4 | 2µs | my $class = shift; | ||
18 | 4 | 1µs | $class = ref($class) if ref($class); | ||
19 | 4 | 2µs | if ($class ne "DBIx::Class::Storage::BlockRunner") { | ||
20 | if ($Moo::MAKERS{$class}) { | ||||
21 | if ($Moo::MAKERS{$class}{constructor}) { | ||||
22 | return $class->DBIx::Class::Storage::BlockRunner::SUPER::new(@_); | ||||
23 | } | ||||
24 | Moo->_constructor_maker_for($class); | ||||
25 | return $class->new(@_); | ||||
26 | } elsif ($INC{"Moose.pm"} and my $meta = Class::MOP::get_metaclass_by_name($class)) { | ||||
27 | return $meta->new_object( | ||||
28 | $class->can("BUILDARGS") ? $class->BUILDARGS(@_) | ||||
29 | : $class->Moo::Object::BUILDARGS(@_) | ||||
30 | ); | ||||
31 | } | ||||
32 | } | ||||
33 | 4 | 1µs | my $args; | ||
34 | 4 | 7µs | if ( scalar @_ == 1 ) { | ||
35 | unless ( defined $_[0] && ref $_[0] eq 'HASH' ) { | ||||
36 | die "Single parameters to new() must be a HASH ref" | ||||
37 | ." data => ". $_[0] ."\n"; | ||||
38 | } | ||||
39 | $args = { %{ $_[0] } }; | ||||
40 | } | ||||
41 | elsif ( @_ % 2 ) { | ||||
42 | die "The new() method for $class expects a hash reference or a" | ||||
43 | . " key/value list. You passed an odd number of arguments\n"; | ||||
44 | } | ||||
45 | else { | ||||
46 | 4 | 9µs | $args = {@_}; | ||
47 | } | ||||
48 | 4 | 9µs | if (my @missing = grep !exists $args->{$_}, qw(retry_handler storage wrap_txn)) { | ||
49 | die "Missing required arguments: ".join(', ', sort @missing); | ||||
50 | } | ||||
51 | 4 | 9µs | my $new = bless({}, $class);; | ||
52 | 4 | 8µs | $new->{"max_attempts"} = ( | ||
53 | exists $args->{"max_attempts"} | ||||
54 | ? $args->{"max_attempts"} | ||||
55 | : "20" | ||||
56 | ); | ||||
57 | 4 | 2µs | if (exists $args->{"retry_debug"}) { | ||
58 | $new->{"retry_debug"} = $args->{"retry_debug"}; | ||||
59 | } | ||||
60 | 4 | 3µs | if (exists $args->{"retry_handler"}) { | ||
61 | 4 | 1µs | do { | ||
62 | 4 | 10µs | local $Method::Generate::Accessor::CurrentAttribute = { | ||
63 | init_arg => "retry_handler", | ||||
64 | name => "retry_handler", | ||||
65 | step => "isa check", | ||||
66 | }; | ||||
67 | 4 | 1µs | my $_error; | ||
68 | { | ||||
69 | 8 | 3µs | my $_old_error = $@; | ||
70 | 4 | 4µs | if (!eval { | ||
71 | 4 | 1µs | $@ = $_old_error; | ||
72 | 8 | 5µs | do { local @_ = ($args->{"retry_handler"}); # BEGIN quote_sub PRELUDE | ||
73 | package DBIx::Class::Storage::BlockRunner; | ||||
74 | # spent 6µs within DBIx::Class::Storage::BlockRunner::BEGIN@74 which was called:
# once (6µs+0s) by Sub::Quote::_clean_eval at line 79 | ||||
75 | 1 | 900ns | $^H = "133090"; | ||
76 | 1 | 300ns | ${^WARNING_BITS} = "UUUUUUUUUUUUUUUUU"; | ||
77 | 1 | 5µs | %^H = ( | ||
78 | ); | ||||
79 | 1 | 161µs | 1 | 6µs | } # spent 6µs making 1 call to DBIx::Class::Storage::BlockRunner::BEGIN@74 |
80 | # END quote_sub PRELUDE | ||||
81 | |||||
82 | 4 | 21µs | 4 | 4µs | (Scalar::Util::reftype($_[0])||'') eq 'CODE' # spent 4µs making 4 calls to Scalar::Util::reftype, avg 1µs/call |
83 | or DBIx::Class::Exception->throw('retry_handler must be a CODE reference') | ||||
84 | }; | ||||
85 | 4 | 2µs | 1; | ||
86 | }) { | ||||
87 | $_error = $@; | ||||
88 | if (!ref $_error) { | ||||
89 | $_error = "isa check for \"retry_handler\" failed: ".$_error; | ||||
90 | } | ||||
91 | } | ||||
92 | 4 | 2µs | $@ = $_old_error; | ||
93 | } | ||||
94 | 4 | 3µs | die $_error if $_error; | ||
95 | } | ||||
96 | ; | ||||
97 | 4 | 3µs | $new->{"retry_handler"} = $args->{"retry_handler"}; | ||
98 | } | ||||
99 | 4 | 3µs | if (exists $args->{"storage"}) { | ||
100 | $new->{"storage"} = $args->{"storage"}; | ||||
101 | } | ||||
102 | 4 | 3µs | if (exists $args->{"wrap_txn"}) { | ||
103 | $new->{"wrap_txn"} = $args->{"wrap_txn"}; | ||||
104 | } | ||||
105 | 4 | 13µs | return $new; | ||
106 | } | ||||
107 | 1 | 1µs | $$_UNQUOTED = \&DBIx::Class::Storage::BlockRunner::new | ||
108 | } | ||||
109 | 1 | 4µs | 1; | ||
110 | |||||
111 | ; |